package com.smartleanx.module.hrm.service.esign.auth;

import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeDO;
import com.smartleanx.module.hrm.dal.dataobject.esign.ElecCorp;
import com.smartleanx.module.hrm.dal.dataobject.esign.EsignOrgMember;
import com.smartleanx.module.hrm.dal.dataobject.esign.EsignOrgSeal;
import com.smartleanx.module.hrm.util.esign.constant.MemberRole;

import java.util.List;

public interface CommonService {


    /**
     * 校验：员工是否完成个人认证
     *
     * @param employeeId 员工ID
     */
    EmployeeDO checkEmployeeIdentify(long employeeId);

    /**
     * 校验：企业是否完成实名认证
     *
     * @param corpId 企业ID
     */
    ElecCorp checkCorpIdentify(long corpId);

    /**
     * 校验：员工是否有企业管理权限
     *
     * @param psnId 个人账号ID
     * @param orgId 机构账号ID
     * @param roles 特定某一角色，不传查询全部
     */
    List<EsignOrgMember> getOrgMemberRoles(String psnId, String orgId, MemberRole... roles);

    /**
     * 校验：校验企业印章是否存在
     *
     * @param orgId 机构账号ID
     * @param sealId 印章ID
     */
    EsignOrgSeal checkOrgSealExist(String orgId, String sealId);



}
